package com.wuchao.mapper;

import com.wuchao.entity.Entry;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

/**
 * @Author wuchao66
 * @Date 2023/9/28 10:35
 * @PackageName:com.wuchao.mapper
 * @ClassName: EntryMapper
 * @Description: TODO
 * @Param
 * @Version 1.0
 */
public interface EntryMapper {//曾经的dao ormg关系映射



    //模糊查询泛型集合 pojo vo dto po
    List<Entry> findEntryByCONCATTitle1( String title);
    List<Entry> findEntryByTitle(@Param("title") String title);
    //顶级标签 注解版 摆脱xml
    @Select("select * from entry where title like CONCAT ('%',#{title},'%')")
    List<Entry> findEntryByTitle1(String title);
//    @Delete()@Update() @Insert()
    List<Entry> findEntryByCONCATTitle2(Entry  entry);
    List<Entry> findEntryById(@Param("id") int id);//param
    int deleteEntryById(int id);
//    企业思想：你中有我 我中有你，他们喜欢对象入参 表单
//    访问修饰符 返回值 方法名(入参){
//        方法体
//    }
    //主键自增回值增加
    int addEntryByEntry(Entry entry);
    //修改
    int updateEntryByEntry(Entry entry);
    //双表模糊动态条件分页查询--pagehelper 1对1 1对多 多对1 多对多
    List<Entry> findEntryAndCategoryByCONCATTitleByCategoryId(@Param("title") String title,@Param("categoryId") int categoryId);
    //借用现有表来实现user
    List<Entry> findUser();
    //双表外联 1对多 分组查询

    List<Entry> findEntryByCategoryId(@Param("CategoryId") int CategoryId);

    //动态sql--对象入参
   // @Select("</script>+")
    List<Entry> findEntryByEntry(Entry entry);
    //动态修改
    int updateEntryByEntry169(Entry entry);
    int updateEntryByEntryTrim(Entry entry);
    //动态switch
    List<Entry> findEntryBySwitchID(@Param("id") int id);
    //入参 int /entry/map/[]/list/map<>
//    多类型入参 map
    List<Entry> findEntryByMap(Map map);
    //list
    List<Entry> findEntryByList(List<Integer> ids);
    //map套list
    List<Entry> findEntryByMapList(Map<String,List<Integer>> ids);
    //[] select * from xx where id in (1,2,42,53,3,8);
    List<Entry> findEntryByArray(int [] ids);
@Select("SELECT * FROM ENTRY")
    List<Entry> findpage();

@Select("SELECT count(1) from entry where title=#{title} and summary=#{summary}")
    int loadby(@Param("title") String title,@Param("summary") String summary);


    //映射的固定
//    mapper:
//    返回值 ：
//    查询 List<Entry>
//    增删改 int
//    入参：int/Entry=1
//    /map/list/[]=2
//    mapper.xml:
//    返回值：
//    resultType=“Entry”
//    resultMap=多表联查的返回值
//    增删改 默认不写，都知道是int
//    入参：parameterType="Entry"=1
//    @Param("title")

}
